var $dp, WdatePicker;

	(function() {
	    var $ = {
	        $langList: [ {
	            name: "en",
	            charset: "UTF-8"
	        }, {
	            name: "zh-cn",
	            charset: "UTF-8"
	        }, {
	            name: "zh-tw",
	            charset: "UTF-8"
	        } ],
	        $skinList: [ {
	            name: "default",
	            charset: "gb2312"
	        }, {
	            name: "whyGreen",
	            charset: "gb2312"
	        }, {
	            name: "blue",
	            charset: "gb2312"
	        }, {
	            name: "green",
	            charset: "gb2312"
	        }, {
	            name: "ext",
	            charset: "gb2312"
	        }, {
	            name: "blueFresh",
	            charset: "gb2312"
	        } ],
	        $wdate: true,
	        $crossFrame: true,
	        $preLoad: false,
	        doubleCalendar: false,
	        enableKeyboard: true,
	        enableInputMask: true,
	        autoUpdateOnChanged: null,
	        weekMethod: "ISO8601",
	        position: {},
	        lang: "auto",
	        skin: "default",
	        dateFmt: "yyyy-MM-dd",
	        realDateFmt: "yyyy-MM-dd",
	        realTimeFmt: "HH:mm:ss",
	        realFullFmt: "%Date %Time",
	        minDate: "1900-01-01 00:00:00",
	        maxDate: "2099-12-31 23:59:59",
	        startDate: "",
	        alwaysUseStartDate: false,
	        yearOffset: 1911,
	        firstDayOfWeek: 0,
	        isShowWeek: false,
	        highLineWeekDay: true,
	        isShowClear: true,
	        isShowToday: true,
	        isShowOK: true,
	        isShowOthers: true,
	        readOnly: false,
	        errDealMode: 0,
	        autoPickDate: null,
	        qsEnabled: true,
	        autoShowQS: false,
	        specialDates: null,
	        specialDays: null,
	        disabledDates: null,
	        disabledDays: null,
	        opposite: false,
	        onpicking: null,
	        onpicked: null,
	        onclearing: null,
	        oncleared: null,
	        ychanging: null,
	        ychanged: null,
	        Mchanging: null,
	        Mchanged: null,
	        dchanging: null,
	        dchanged: null,
	        Hchanging: null,
	        Hchanged: null,
	        mchanging: null,
	        mchanged: null,
	        schanging: null,
	        schanged: null,
	        eCont: null,
	        vel: null,
	        elProp: "",
	        errMsg: "",
	        quickSel: [],
	        has: {},
	        getRealLang: function() {
	            var _ = $.$langList;
	            for (var A = 0; A < _.length; A++) if (_[A].name == this.lang) return _[A];
	            return _[0];
	        }
	    };
	    WdatePicker = T;
	    var X = window, S = {
	        innerHTML: ""
	    }, M = "document", H = "documentElement", C = "getElementsByTagName", U, A, R, G, a, W = navigator.appName;
	    if (W == "Microsoft Internet Explorer") R = true; else if (W == "Opera") a = true; else G = true;
	    A = J();
	    if ($.$wdate) K(A +"skin/WdatePicker.css");
	    U = X;
	    if ($.$crossFrame) {
	        try {
	            while (U.parent && U.parent[M] != U[M] && U.parent[M][C]("frameset").length == 0) U = U.parent;
	        } catch (N) {}
	    }
	    if (!U.$dp) U.$dp = {
	        ff: G,
	        ie: R,
	        opera: a,
	        status: 0,
	        defMinDate: $.minDate,
	        defMaxDate: $.maxDate
	    };
	    B();
	    if ($.$preLoad && $dp.status == 0) E(X, "onload", function() {
	        T(null, true);
	    });
	    if (!X[M].docMD) {
	        E(X[M], "onmousedown", D);
	        X[M].docMD = true;
	    }
	    if (!U[M].docMD) {
	        E(U[M], "onmousedown", D);
	        U[M].docMD = true;
	    }
	    E(X, "onunload", function() {
	        if ($dp.dd) O($dp.dd, "none");
	    });
	    function B() {
	        U.$dp = U.$dp || {};
	        obj = {
	            $: function($) {
	                return typeof $ == "string" ? X[M].getElementById($) : $;
	            },
	            $D: function($, _) {
	                return this.$DV(this.$($).value, _);
	            },
	            $DV: function(_, $) {
	                if (_ != "") {
	                    this.dt = $dp.cal.splitDate(_, $dp.cal.dateFmt);
	                    if ($) for (var B in $) if (this.dt[B] === undefined) this.errMsg = "invalid property:" + B; else {
	                        this.dt[B] += $[B];
	                        if (B == "M") {
	                            var C = $["M"] > 0 ? 1 : 0, A = new Date(this.dt["y"], this.dt["M"], 0).getDate();
	                            this.dt["d"] = Math.min(A + C, this.dt["d"]);
	                        }
	                    }
	                    if (this.dt.refresh()) return this.dt;
	                }
	                return "";
	            },
	            show: function() {
	                var A = U[M].getElementsByTagName("div"), $ = 1e5;
	                for (var B = 0; B < A.length; B++) {
	                    var _ = parseInt(A[B].style.zIndex);
	                    if (_ > $) $ = _;
	                }
	                this.dd.style.zIndex = $ + 2;
	                O(this.dd, "block");
	            },
	            hide: function() {
	                O(this.dd, "none");
	            },
	            attachEvent: E
	        };
	        for (var $ in obj) U.$dp[$] = obj[$];
	        $dp = U.$dp;
	    }
	    function E(A, $, _) {
	        if (R) A.attachEvent($, _); else if (_) {
	            var B = $.replace(/on/, "");
	            _._ieEmuEventHandler = function($) {
	                return _($);
	            };
	            A.addEventListener(B, _._ieEmuEventHandler, false);
	        }
	    }
	    function J() {
	        var _, A, $ = X[M][C]("script");
	        for (var B = 0; B < $.length; B++) {
	            _ = $[B].getAttribute("src") || "";
	            _ = _.substr(0, _.toLowerCase().indexOf("wdatepicker.js"));
	            A = _.lastIndexOf("/");
	            if (A > 0) _ = _.substring(0, A + 1);
	            if (_) break;
	        }
	        return _;
	    }
	    function K(A, $, B) {
	        var D = X[M][C]("HEAD").item(0), _ = X[M].createElement("link");
	        if (D) {
	            _.href = A;
	            _.rel = "stylesheet";
	            _.type = "text/css";
	            if ($) _.title = $;
	            if (B) _.charset = B;
	            D.appendChild(_);
	        }
	    }
	    function F($) {
	        $ = $ || U;
	        var A = 0, _ = 0;
	        while ($ != U) {
	            var D = $.parent[M][C]("iframe");
	            for (var F = 0; F < D.length; F++) {
	                try {
	                    if (D[F].contentWindow == $) {
	                        var E = V(D[F]);
	                        A += E.left;
	                        _ += E.top;
	                        break;
	                    }
	                } catch (B) {}
	            }
	            $ = $.parent;
	        }
	        return {
	            leftM: A,
	            topM: _
	        };
	    }
	    function V(G, F) {
	        if (G.getBoundingClientRect) return G.getBoundingClientRect(); else {
	            var A = {
	                ROOT_TAG: /^body|html$/i,
	                OP_SCROLL: /^(?:inline|table-row)$/i
	            }, E = false, I = null, _ = G.offsetTop, H = G.offsetLeft, D = G.offsetWidth, B = G.offsetHeight, C = G.offsetParent;
	            if (C != G) while (C) {
	                H += C.offsetLeft;
	                _ += C.offsetTop;
	                if (Q(C, "position").toLowerCase() == "fixed") E = true; else if (C.tagName.toLowerCase() == "body") I = C.ownerDocument.defaultView;
	                C = C.offsetParent;
	            }
	            C = G.parentNode;
	            while (C.tagName && !A.ROOT_TAG.test(C.tagName)) {
	                if (C.scrollTop || C.scrollLeft) if (!A.OP_SCROLL.test(O(C))) if (!a || C.style.overflow !== "visible") {
	                    H -= C.scrollLeft;
	                    _ -= C.scrollTop;
	                }
	                C = C.parentNode;
	            }
	            if (!E) {
	                var $ = Z(I);
	                H -= $.left;
	                _ -= $.top;
	            }
	            D += H;
	            B += _;
	            return {
	                left: H,
	                top: _,
	                right: D,
	                bottom: B
	            };
	        }
	    }
	    function L($) {
	        $ = $ || U;
	        var B = $[M], A = $.innerWidth ? $.innerWidth : B[H] && B[H].clientWidth ? B[H].clientWidth : B.body.offsetWidth, _ = $.innerHeight ? $.innerHeight : B[H] && B[H].clientHeight ? B[H].clientHeight : B.body.offsetHeight;
	        return {
	            width: A,
	            height: _
	        };
	    }
	    function Z($) {
	        $ = $ || U;
	        var B = $[M], A = B[H], _ = B.body;
	        B = A && A.scrollTop != null && (A.scrollTop > _.scrollTop || A.scrollLeft > _.scrollLeft) ? A : _;
	        return {
	            top: B.scrollTop,
	            left: B.scrollLeft
	        };
	    }
	    function D($) {
	        var _ = $ ? $.srcElement || $.target : null;
	        try {
	            if ($dp.cal && !$dp.eCont && $dp.dd && _ != $dp.el && $dp.dd.style.display == "block") $dp.cal.close();
	        } catch ($) {}
	    }
	    function Y() {
	        $dp.status = 2;
	    }
	    var P, _;
	    function T(N, F) {
	        $dp.win = X;
	        B();
	        N = N || {};
	        for (var K in $) if (K.substring(0, 1) != "$" && N[K] === undefined) N[K] = $[K];
	        if (F) {
	            if (!L()) {
	                _ = _ || setInterval(function() {
	                    if (U[M].readyState == "complete") clearInterval(_);
	                    T(null, true);
	                }, 50);
	                return;
	            }
	            if ($dp.status == 0) {
	                $dp.status = 1;
	                N.el = S;
	                I(N, true);
	            } else return;
	        } else if (N.eCont) {
	            N.eCont = $dp.$(N.eCont);
	            N.el = S;
	            N.autoPickDate = true;
	            N.qsEnabled = false;
	            I(N);
	        } else {
	            if ($.$preLoad && $dp.status != 2) return;
	            var J = H();
	            if (J) {
	                N.srcEl = J.srcElement || J.target;
	                J.cancelBubble = true;
	            }
	            N.el = N.el = $dp.$(N.el || N.srcEl);
	            if (!N.el || N.el["My97Mark"] === true || N.el.disabled || $dp.dd && O($dp.dd) != "none" && $dp.dd.style.left != "-970px") {
	                try {
	                    N.el["My97Mark"] = false;
	                } catch (C) {}
	                return;
	            }
	            I(N);
	            if (J && N.el.nodeType == 1 && N.el["My97Mark"] === undefined) {
	                var A, D;
	                if (J.type == "focus") {
	                    A = "onclick";
	                    D = "onfocus";
	                } else {
	                    A = "onfocus";
	                    D = "onclick";
	                }
	                E(N.el, A, N.el[D]);
	            }
	        }
	        function L() {
	            if (R && U != X && U[M].readyState != "complete") return false;
	            return true;
	        }
	        function H() {
	            if (G) {
	                func = H.caller;
	                while (func != null) {
	                    var $ = func.arguments[0];
	                    if ($ && ($ + "").indexOf("Event") >= 0) return $;
	                    func = func.caller;
	                }
	                return null;
	            }
	            return event;
	        }
	    }
	    function Q(_, $) {
	        return _.currentStyle ? _.currentStyle[$] : document.defaultView.getComputedStyle(_, false)[$];
	    }
	    function O(_, $) {
	        if (_) if ($ != null) _.style.display = $; else return Q(_, "display");
	    }
	    function I(G, _) {
	        var D = G.el ? G.el.nodeName : "INPUT";
	        if (_ || G.eCont || new RegExp(/input|textarea|div|span|p|a/gi).test(D)) G.elProp = D == "INPUT" ? "value" : "innerHTML"; else return;
	        if (G.lang == "auto") G.lang = R ? navigator.browserLanguage.toLowerCase() : navigator.language.toLowerCase();
	        if (!G.eCont) for (var C in G) $dp[C] = G[C];
	        if (!$dp.dd || G.eCont || $dp.dd && (G.getRealLang().name != $dp.dd.lang || G.skin != $dp.dd.skin)) {
	            if (G.eCont) E(G.eCont, G); else {
	                $dp.dd = U[M].createElement("DIV");
	                $dp.dd.style.cssText = "position:absolute";
	                U[M].body.appendChild($dp.dd);
	                E($dp.dd, G);
	                if (_) $dp.dd.style.left = $dp.dd.style.top = "-970px"; else {
	                    $dp.show();
	                    B($dp);
	                }
	            }
	        } else if ($dp.cal) {
	            $dp.show();
	            $dp.cal.init();
	            if (!$dp.eCont) B($dp);
	        }
	        function E(F, E) {
	            F.innerHTML = "<iframe hideFocus=true width=97 height=9 frameborder=0 border=0 scrolling=no></iframe>";
	            var D = F.lastChild.contentWindow[M], _ = $.$langList, C = $.$skinList, H = E.getRealLang();
	            F.lang = H.name;
	            F.skin = E.skin;
	            var G = [ "<head><script>", "var $d, $dp, $cfg=document.cfg, $pdp = parent.$dp, $dt, $tdt, $sdt, $lastInput, $IE=$pdp.ie, $FF = $pdp.ff,$OPERA=$pdp.opera, $ny, $cMark = false;", "if($cfg.eCont){$dp = {};for(var p in $pdp)$dp[p]=$pdp[p];}else{$dp=$pdp;};for(var p in $cfg){$dp[p]=$cfg[p];}", "document.oncontextmenu=function(){try{$c._fillQS(!$dp.has.d,1);showB($d.qsDivSel);}catch(e){};return false;};", "</script><script src=", A, "lang/", H.name, ".js charset=", H.charset, "></script>" ];
	            for (var I = 0; I < C.length; I++) if (C[I].name == E.skin) G.push('<link rel="stylesheet" type="text/css" href="' + A + "skin/" + C[I].name + '/datepicker.css" charset="' + C[I].charset + '"/>');
	            G.push('<script type="text/javascript" src="' + A + 'calendar.js?"+Math.random()+" charset="gb2312"></script>');
	            G.push('</head><body leftmargin="0" topmargin="0" tabindex=0></body></html>');
	            G.push("<script>var t;t=t||setInterval(function(){if(document.ready){new My97DP();$cfg.onload();$c.autoSize();$cfg.setPos($dp);clearInterval(t);}},20);if($FF||$OPERA)document.close();</script>");
	            E.setPos = B;
	            E.onload = Y;
	            D.write("<html>");
	            D.cfg = E;
	            D.write(G.join(""));
	        }
	        function B(I) {
	            var G = I.position.left, B = I.position.top, C = I.el;
	            if (C == S) return;
	            if (C != I.srcEl && (O(C) == "none" || C.type == "hidden")) C = I.srcEl;
	            var H = V(C), $ = F(X), D = L(U), A = Z(U), E = $dp.dd.offsetHeight, _ = $dp.dd.offsetWidth;
	            if (isNaN(B)) B = 0;
	            if ($.topM + H.bottom + E > D.height && $.topM + H.top - E > 0) B += A.top + $.topM + H.top - E - 2; else B += A.top + $.topM + Math.min(H.bottom, D.height - E) + 2;
	            if (isNaN(G)) G = 0;
	            G += A.left + Math.min($.leftM + H.left, D.width - _ - 5) - (R ? 2 : 0);
	            I.dd.style.top = B + "px";
	            I.dd.style.left = G + "px";
	        }
	    }
	})();